//
// Created by sunyl on 25-5-10.
//

#ifndef PROJECT_ZNYQ_0510_KEY_H
#define PROJECT_ZNYQ_0510_KEY_H

#include "stm32f1xx.h"

typedef enum {
    KEY_IDLE,
    KEY_DEBOUNCE,
    KEY_PRESSED
} KeyState;

typedef struct {
    GPIO_TypeDef* port;
    uint16_t      pin;
    GPIO_PinState activeLevel;  // 新增：按下时的电平（GPIO_PIN_RESET 或 GPIO_PIN_SET）
    KeyState      state;
    uint32_t      lastTick;
    uint8_t       flag;         // 按键有效按下标志
} Key_t;

#define NUM_KEYS 4
extern Key_t keys[NUM_KEYS]; // 这句声明在其他文件中使用 keys
void KeyScan(void);



#endif //PROJECT_ZNYQ_0510_KEY_H
